好的,接續上一篇,我們來看看其他的運算子,以及他們彼此間的優先順序吧!
以下運算子會先將運算元換成0和1的二進位制
,再做二進位制
的布林運算。
運算子 | 意義 | 說明 |
---|---|---|
& | 且(And) | A & B,當A、B都為真時,結果才會為真 |
| | 或(Or) | A | B,當A、B其中一個為真時,結果為真 |
^ | XOr(互斥) | 當A跟B都是或都是1,結果為0,否則結果為1 |
~ | 非(Not) | ~A,取A的二進位制後完全相反 |
表格如下:
A | B | A&B | A|B | A^B | ~A |
---|---|---|---|---|---|
1 | 1 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 1 | 1 |
0 | 0 | 0 | 0 | 0 | 1 |
舉例:
位元運算子內容參考至:Visual C# 2017程式設計經典:https://www.books.com.tw/products/0010765250
運算子 | 說明 |
---|---|
<< | 位元左移 |
>> | 位元右移 |
二進位制
對於非本科的我這實在太抽象也太不直觀,讓我們把二進位叫出來直接看例子:
當需要將某個變數或是運算式的結果指定給某個變數時使用。等號左邊不可為運算式或常數才能夠指定值進去。
運算順序由右而左
運算子 | 說明 | 例子 |
---|---|---|
= | 把右方指定給左方 | a=5;一直在用XD |
+= | 把左方加右方後再指定給左方 | a+=5;->等同於a=a+5的意思常用 |
-= | 把左方減右方後再指定給左方 | a-=5;->等同於a=a-5的意思常用 |
*= | 把左方乘右方後再指定給左方 | a*=5;->等同於a=a*5的意思常用 |
/= | 把左方除以右方後再指定給左方 | a/=5;->等同於a=a/5的意思常用 |
%= | 把左方除以右方取餘數後再指定給左方 | a%=5;->等同於a=a%5的意思 |
^= | 把左方作位元的XOR運算後再指定給左方 | a^=5;->等同於a=a^5的意思 |
&= | 把左方作位元的AND運算後再指定給左方 | a&=5;->等同於a=a&5的意思 |
|= | 把左方作位元的OR運算後再指定給左方 | a|=5;->等同於a=a|5的意思 |
<<= | 把左方作位元的左移運算後再指定給左方 | a<<=5;->等同於a=a<<5的意思 |
>>= | 把左方作位元的右移運算後再指定給左方 | a>>=5;->等同於a=a>>5的意思 |
條件運算子?:
也稱為三元條件運算子,運算後傳回的結果為布林值:True或False
運算順序由右而左
這段敘述是否為真 ?
真的話回傳這個位置的值 :
否的話回傳這個位置的值
舉例一
Min=(a < b)? a:b;//若 a < b是True,Min=a,否則Min = b。
舉例二
a ? b : c ? d : e; //先進行右方的判斷,此行等同於a ? b : (c ? d : e);
表格很長,自己重點節錄如下:
運算順序多是由左而右,除了指定運算子及條件運算子
()括號優先->乘、除、取餘數->加、減
這個記到快爛掉的順序還是管用的C#官方文件內還有其他運算子分類,基礎版就先介紹到這,其他內容可以參考MSDN-運算子
後記:
因為重新整理了運算子,才發現原本以為+-*/那些才是運算子,但其實.、f(x)、array[i]其中的.、()、[]也都是運算子(成員存取運算子),算是一個新領悟,開心!
另外進行到這一天可能會覺得有點繁瑣了,想要跟大家分享一個自己學習的信念了解基礎,很多問題就會變得比較簡單
基礎穩了,遇到沒碰過的問題才能夠回歸原理去思考,不會那麼容易被打敗=)
所以,沉下心,一起加油吧=)go!